/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package javaboken.tjugoett;

import java.util.*;

/**
 *
 * @author Mikael K
 */
public class Stack {
    // en stack är mer eller mindre en lista över kort samt ett par metoder
    private List<Card> stack = new LinkedList<Card>();

    // lägger till ett kort på en stack (i detta fallet på handen)
    public void putOnTop(Card c){
        stack.add(0, c);
    }

    //tar bort ett kort från en stack (från deck, alltså leken)
    public Card removeFromTop(){
        Card c = stack.get(0);
        stack.remove(0);
        return c;
    }

    public int numCards(){
        return stack.size();
    }

    public void throwCards(){
        stack.clear();
    }

    public Card lookAt(int n){
        return stack.get(n);
    }

    public Card remove(int n){
        Card c = stack.get(n);
        stack.remove(n);
        return c;
    }

    public int search(Suit s, Face f){
        int i = 0;
        for(Card c : stack){
            if(c.getS() ==  s && c.getF() == f){
                return i;
            }
            else{
                i++;
            }
        }
        return -1;
    }

    public void newDeck(){
        stack.clear();
        for(Suit s : Suit.values()){
            for(Face f : Face.values()){
                stack.add(new Card(s, f));
            }
        }
    }

    public void shuffle(){
        Collections.shuffle(stack);
    }
}
